home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.mactech.com 2010
/
ftp.mactech.com.tar
/
ftp.mactech.com
/
machack
/
Hacks97
/
VerticalHold.sit
/
Vertical Hold
/
source code
/
MungePlug.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1997-06-27
|
2KB
|
81 lines
#include <LowMem.h>
#include <A4Stuff.h>
#include <QuickDraw.h>
#include <Memory.h>
#include <Resources.h>
#include <Fonts.h>
#include <Dialogs.h>
#include <QDOffscreen.h>
#include <string.h>
#include <stdio.h>
#include <Timer.h>
int mungePos = 0;
int mungeVal[100] =
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
21, -15, 17, 18, -12, -16, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
21, -15, 17, 18, -12, -16, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -16, -12, 18, 17, -15, 21,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
void initMungePlug()
{
}
void disposeMungePlug()
{
}
typedef struct {
TMTask task;
Ptr mainBaseAddr;
Size worldBytes;
Ptr worldBuffer;
short rowBytes;
short phase;
Rect size;
short offset;
} MyTaskRec;
void doMungePlug(MyTaskRec* myTask)
{
EnterCodeResource ();
short height = myTask -> size.bottom - myTask -> size.top;
short phase = myTask -> phase;
short rowBytes = myTask -> rowBytes;
Ptr worldBuffer = myTask -> worldBuffer;
Ptr screenBuffer = myTask -> mainBaseAddr;
mungePos++;
if(mungePos > 99)
mungePos = 0;
int i;
for(i = 0; i < height; i++)
{
long offset = mungeVal[(mungePos + i) % 100];
if(offset > 0)
{
::BlockMoveData (worldBuffer + i * rowBytes,
screenBuffer + i * rowBytes + offset,
rowBytes);
}
else
{
::BlockMoveData (worldBuffer + i * rowBytes - offset,
screenBuffer + i * rowBytes,
rowBytes);
}
}
ExitCodeResource ();
}